package com.ny.zmb.openapi.ysutil.from.merchant;

import com.ny.zmb.openapi.ysutil.annotation.Length;
import com.ny.zmb.openapi.ysutil.annotation.NotBlank;
import com.ny.zmb.openapi.ysutil.base.BaseBizReqCommand;
import com.ny.zmb.openapi.ysutil.utils.RequestNoUntil;
import com.ny.zmb.openapi.ysutil.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MerchantAddBankAccount {

    /**
     * 业务请求号
     */
    @NotBlank(message = "业务请求号" + "不能为空")
    @Length(max = 32, message = "业务请求号" + "长度超过" + "32" + "个字符")
    private String requestNo;
    /**
     * 银盛商户号
     */
    private String merchantNo;
    /**
     * 银行卡类型
     * 11=对私借记卡
     * 21=对公借记卡
     */
    private String accountCardType;
    /**
     * 银行账号
     */
    private String accountNo;
    /**
     * 银行户名
     */
    private String accountName;
    /**
     * 开户行编号（传联名行号，取值参考：调用公共接口-开户行查询接口） 示例值：1021000
     */
    private String openAccBanktype;
    /**
     * 开户行名称（传银行名称，参考行号行别表：调用公共接口-开户行查询接口）示例值：中国工商银行深圳市分行营业部
     */
    private String openAccBankname;
    /**
     * 开户行所在地地区码（传地区码，参考行号行别表：调用公共接口-开户行查询接口） 示例值：5840
     */
    private String openAccCityCode;
    public void setRequestNo(String requestNo) {
        if (StringUtils.isEmpty(requestNo)) {
            this.requestNo = RequestNoUntil.generateNumericTaskNumber();
        } else {
            this.requestNo = requestNo;
        }
    }

    public void checkRequestNo(){
        if (StringUtils.isEmpty(requestNo)) {
            this.requestNo = RequestNoUntil.generateNumericTaskNumber();
        }
    }
}
